package com.evildog.workspace.log.application.convert;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.evildog.workspace.common.result.PagedResult;
import com.evildog.workspace.log.application.bo.ExceptionLogBO;
import com.evildog.workspace.log.application.bo.ExceptionLogPageBO;
import com.evildog.workspace.log.application.dto.ExceptionLogDTO;
import com.evildog.workspace.log.application.dto.ExceptionLogPageDTO;
import com.evildog.workspace.log.application.entity.ExceptionLog;
import com.evildog.workspace.log.application.entity.ExceptionLogPageDO;
import com.evildog.workspace.log.application.model.ExceptionLogPageParam;
import com.evildog.workspace.log.application.vo.ExceptionLogPageVO;
import com.evildog.workspace.log.application.vo.ExceptionLogVO;
import com.evildog.workspace.log.api.model.ExceptionLogParam;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

@Mapper
public interface ExceptionLogConvert {

    ExceptionLogConvert INSTANCE = Mappers.getMapper(ExceptionLogConvert.class);

    ExceptionLogPageDTO convert(ExceptionLogPageParam exceptionLogPageParam);

    ExceptionLogDTO convert(ExceptionLogParam exceptionLogParam);

    ExceptionLog convert(ExceptionLogDTO exceptionLogDTO);

    ExceptionLogPageDO convert(ExceptionLogPageDTO exceptionLogPageDTO);

    ExceptionLogVO convert(ExceptionLogBO exceptionLogBO);

    ExceptionLogBO convert(ExceptionLog exceptionLog);

    @Mappings({})
    PagedResult<ExceptionLogPageBO> convert(IPage<ExceptionLogPageDO> page);

    PagedResult<ExceptionLogPageVO> convert(PagedResult<ExceptionLogPageBO> page);
}